Methods and Systems for Document-Based Publishing Channels

ABSTRACT

An editing application can support publishing channels that are embedded in a document being edited. A publishing channel can include one or more publishing parameters usable to control how some or all of the content is exported by the editing application. A method can comprise loading a document in an editing environment provided by an editing application, receiving data identifying at least a portion of the document, receiving data defining a publishing channel to use in exporting the identified portion of the document, and storing data defining the instance of the publishing channel in the document alongside data defining the document. The document may comprise a plurality of objects and storing data can comprise storing data defining the instance of the publishing channel with respect to one or more of the objects included in the document.

TECHNICAL FIELD

The disclosure below generally relates to media viewing and editingapplications, particularly to handling export of media.

BACKGROUND

Editing applications can be used to generate visual, audio, textual, andother content data for various purposes. As an example, a graphicediting application such as Adobe® Photoshop® or Illustrator® can beused to edit a document comprising raster or vector graphic objects. Avideo editing application such as Adobe® Premiere Pro® may be used toedit a document comprising video and/or audio objects. As a furtherexample, a web page or an application may include visual, video, audio,and textual content and can be developed using an editing applicationsuch as Adobe® Flash Builder™, Dreamweaver®, or Adobe® Fireworks. All ofthe editing applications noted above are available from Adobe SystemsIncorporated of San Jose, Calif.; numerous other editing applicationsare available from other vendors.

When editing is complete, one option is to export content from a formatnative to the editing application to another format or medium. Forexample, vector or raster graphics may be converted into a bitmap, JPEG,or other image file for file export or may be converted into a datastructure for use by a printer to print the graphics. As anotherexample, a web page may be arranged in an editing application and itscontents exported as an HTML file referencing graphics files that arealso exported.

Although useful, aspects of editing applications can be tedious. Forexample, a developer may wish to export content from an editingapplication for a number of different purposes and may be slowed byadjusting export settings and making other selections. Although someediting applications retain the last-used export path (e.g., thelast-used page settings for printing a word processor document), such afeature may be of minimal help to a developer using the same content formultiple different export scenarios.

SUMMARY

In accordance with one or more aspects of the present subject matter, anediting application can support publishing channels that are embedded ina document being edited. A publishing channel can define a plurality ofpublishing parameters usable to control how some or all of the contentis exported by the editing application. An instance of the publishingchannel can define particular values for those parameters. This may, forinstance, allow a developer, designer, or other application user todefine publishing scenarios once and easily use the publishingscenario(s) during different editing sessions.

Embodiments include a method comprising loading a document in an editingenvironment provided by an editing application, receiving dataidentifying at least a portion of the document, receiving data definingan instance of a publishing channel to use in exporting the identifiedportion of the document, and storing data defining the instance of thepublishing channel in the document alongside data defining the document,with the instance of the publishing channel referencing the identifiedportion of the document. For example, the document may comprise aplurality of objects and storing data can comprise storing data definingthe parameter values for the instance of the publishing channel withrespect to one or more of the objects included in the document.

Embodiments include support for multiple instances of publishingchannels for the same document. The multiple instances of publishingchannels may be used in exporting some or all of the same logical unitsof the document and/or may be directed to different logical units.Additionally, different publishing channel types may be defined, and sothe instances of publishing channels may be of different types.

For example, data defining an instance of a first publishing channeltype with respect to a first object can be included in the document anddata defining an instance of a second publishing channel type withrespect to a second object can be included in the document. This mayallow, for example, for different objects to be exported differently(e.g., using different file types, file qualities) or completelyseparately from one another. As another example, different publishingchannels can be used to export the entire document, but using differentparameters (e.g., a first channel to print the document, a secondchannel to export the document as a single JPEG file, and a thirdchannel to export a plurality of high-quality image files of eachcomponent in the document). Additionally or alternatively, a documentmay contain multiple instances of the same publishing channel type, butwith different parameter values as between the instances.

Embodiments also include systems and computer-readable mediaimplementing one or more aspects of the present subject matter. Theseillustrative embodiments are mentioned not to limit or define the limitsof the present subject matter, but to provide examples to aidunderstanding thereof. Illustrative embodiments are discussed in theDetailed Description, and further description is provided there.Advantages offered by various embodiments may be further understood byexamining this specification and/or by practicing one or moreembodiments of the claimed subject matter.

BRIEF DESCRIPTION OF THE DRAWINGS

A full and enabling disclosure is set forth more particularly in theremainder of the specification. The specification makes reference to thefollowing appended figures.

FIG. 1 is a block diagram illustrating an example of a computing systemconfigured to support document-based publishing channels.

FIG. 2 is a diagram illustrating an exemplary software architecture foran editing application that supports document-based publishing channels.

FIG. 3 is a flowchart showing steps of an exemplary method of storingpublishing channel information in a document.

FIG. 4 is a flowchart showing steps of an exemplary method of usingstored publishing channel information to export a document or one ormore portions of a document.

FIG. 5 is a diagram illustrating an exemplary user interface of anediting application.

FIG. 6 is a diagram showing an exemplary data structure including objectdata of a document and publishing channel data.

DETAILED DESCRIPTION

Reference will now be made in detail to various and alternativeexemplary embodiments and to the accompanying drawings. Each example isprovided by way of explanation, and not as a limitation. It will beapparent to those skilled in the art that modifications and variationscan be made. For instance, features illustrated or described as part ofone embodiment may be used on another embodiment to yield a stillfurther embodiment. Thus, it is intended that this disclosure includesmodifications and variations as come within the scope of the appendedclaims and their equivalents.

In the following detailed description, numerous specific details are setforth to provide a thorough understanding of the claimed subject matter.However, it will be understood by those skilled in the art that claimedsubject matter may be practiced without these specific details. In otherinstances, methods, apparatuses or systems that would be known by one ofordinary skill have not been described in detail so as not to obscurethe claimed subject matter.

FIG. 1 is a block diagram illustrating an example of a computing system100 configured to support document-based publishing channels. In thisexample, computing system 100 comprises a platform 102 having one ormore processors 104 with access via bus 106 to a computer-readablemedium 108 embodying program components that configure computing system100 to function. In this example, the program components reside inmemory, which can comprise RAM, ROM, Flash memory, or any other suitablestorage medium. Additional components include input-output (I/O)handling components 110, a display 120, user input (UI) devices 116(e.g., a mouse, keyboard, touch screen interface, etc.), one or morenetworking or other interfaces 118 (e.g., Ethernet, USB, etc.), andstorage 114 (e.g., hard disk, optical drive(s)).

The program components include an editing application 122 and one ormore objects 124. Of course, computing system 100 may be configured byother software such as multiple different editing applications 122,other applications, and/or an operating system. Computing system 100 isnot intended to limit the use of the subject matter to the particularcomputer architecture shown. For instance, embodiments include a servercomputing system comprising one or more server devices could utilize anembodiment of an editing application 122 that is provided as a webservice accessible by one or more client devices using a browser, aclient-side rich internet application, or another client-sideapplication to invoke the web service.

Generally speaking, an editing application 122 can include program codefor accessing a document file, the document file comprising dataidentifying a plurality of logical units of the document. In thisexample, the logical units are represented as one or more objects 124.For example, the editing application can include suitable code foropening a file having content data for a visual document, with thevisual document formed using a number of visual objects such as vectorand/or raster graphics, graphic effects, and text arranged intodifferent layers.

In accordance with the present subject matter, editing application 122also includes program code for identifying a publishing parameter (orparameters) stored in the document file. The publishing parameter(s) canbe used to determine how to export one or more logical units of thedocument by automatically providing export setting values for use bycomponents of the editing application that handle export. For example,exporting can comprise providing data representing the at least onelogical unit of the document by using the publishing parameter todetermine at least one of a data format, a layout, or a desired locationfor the provided data.

In some embodiments, the publishing parameters are grouped intopublishing channels that can be selected by a user. As will be notedbelow, a publishing channel may include parameters for exporting all oronly some of the contents of a document. Different types of publishingchannels may be supported—for example, a first type may includeparameters for use in controlling one type of export operation, a secondtype may include parameters for controlling a different type of exportoperation, and so on.

As a specific example, the editing application can include program codefor exporting at least one logical unit of the document based on apublishing parameter as is conventionally known, such as by convertingvarious graphic elements into JPEG files upon selection of a file formatand quality level (e.g., low, medium, and high). However, rather thanrelying on user input provided at the time of export to determine valuesfor the file type and quality level parameters, the parameter values canbe found in the document itself and can automatically be used when aninstance of a publishing channel including the parameter values isselected.

The instance of the publishing channel may identify that only a subsetof all of the objects are to be exported, and so the user may be sparedhaving to manually select the subset each time he or she wishes topublish those objects. The publishing parameters may also specify howthe objects are to be arranged for output. As an example, publishingparameters may identify a layout for printing and/or for combiningdifferent objects into a single file. As another example, the publishingparameters may identify that different objects are to be output intodifferent files, along with file type and quality characteristics foreach file.

As a further example, publishing parameters may be defined with respectto other logical units of a document. For example, a user may select oneor more portions of an object or a group of objects and define apublishing channel instance applicable to the selected portion of theobject or group of objects. For instance, the document may comprise aspreadsheet or a word processing document and the logical units maycomprise a series of cells in the spreadsheet or a series of textual orother elements in the word processing document. These portions may beexported quickly and easily in some embodiments by selection of thecorresponding publishing channel.

It will be appreciated that a number of different publishing parameterscan be supported. The particular parameters stored in a document mayvary as between different editing applications, or the editingapplications may utilize a common format for some or all parameters.

A publishing channel can specify parameters applicable to the entireexport operation and/or applicable to the logical unit(s) that are to beexported. For instance, for purposes of the export operation, publishingparameters can include data identifying which of several objects orother logical units are to be exported when a particular channel isselected. For instance, content of a document may include both staticand animated/video elements. A “print” publishing channel may includeonly the static elements, while a “web” or “video” publishing channelmay include the static and animated video elements. Another publishingchannel may include all elements of a document.

Examples of publishing parameters include, but are not limited to, theparameters noted in the table below, which may be applied to logicalunits of a document and/or the document as a while when exported:

Parameter Name Example of use File type Specifies type of file forstoring data that is exported Margin Specifies margin for export usingprint or an electronic document Invisible True/false value forspecifying whether logical unit to be visible if exported AnimatedTrue/false value for freezing an animated element for export Filequality Specify file quality/size for use in export Rel-LocationSpecifies location of logical unit relative to page/file boundaries Filelocation Specifies file location to store exported data Print Identifiesprinter path to print exported data Print-settings Identifies printercolor, margin, paper, or other settings for export Color profile Setcolor profile for image file Transparency Set transparency for imagefile Pixel Bit Depth Set bit depth for image file FTP server addressAddress to which file is to be exported FTP username/ Login informationfor server to which file password is exported PDF-Title Title for PDFexport PDF-Author Author for PDF export PDF-Subject Subject for PDFexport Version Version of output format to use SWF-Player VersionVersion of Flash(R) Player to use Background color Background color forimage/SWF file Compression Indicator of whether to output compressed oruncompressed file

As indicated in the exemplary table above, parameters of publishingchannels may be used to directly affect the exported content and/or canbe used to set metadata values appended to the file. Other informationsuch as file names, access restrictions (e.g., passwords), encryption,and the like may also be defined as parameters of a publishing channel.

FIG. 2 is a diagram illustrating an example software architecture for anediting application 122 that supports document-based publishingchannels. In this example, editing application 122 includes a userinterface (UI) module 202, one or more editing modules 204, a channelmanagement module 206, and one or more export modules 208. Thisarchitecture is for purposes of example only and, in practice, anediting application can be configured with more or fewer modules orother program components than those illustrated here.

UI module 202 configures the computing system utilizing application 122to provide an interface to receive input data and to generate a visualrepresentation of content of a document, the content of the documentstored in a file accessible by the computing system. For example, UImodule 202 can comprise code that generates a graphical user interfacecomprising one or more windows for manipulating visual representationsof the content via pointer gestures (e.g., clicks, drags, etc.),keyboard input, or other input.

Depending on the configuration and capabilities of the editingapplication, the user interface can include tool palettes for selectingdifferent tools (e.g., cut, paste, paint, fill, etc.) to edit documentcontent and a layers palette if the document includes different layers.If editing application 122 is used to edit dynamic content (e.g., video,animated, or interactive content that changes over time), UI module 202may include a timeline control so that different frames or other subunits can be accessed to change the sequence or flow of the dynamiccontent.

Editing module 204 represents one or more program components configuredto change the content of the document in response to the input data. Forexample, editing module 204 can include one or more programmaticmethods, operations, or functions that change data defining theappearance, arrangement, or other characteristics of the documentcontent in response to input data. For instance, editing module 204 mayinclude suitable algorithms to draw a vectorized expression of a curvein response to inputs provided via a curve tool presented in the userinterface. Operation of the editing components should be known to one ofskill in the art and further detail is not included herein so as not toobscure the present subject matter.

In some embodiments, editing module(s) 204 can be omitted, such as ifapplication 122 is intended only for viewing and exporting documents.For example, a web-based version of editing application 122 may allowfor limited or no editing of documents, but may allow a user todefine/utilize publishing channels embedded in the document.

In accordance with aspects of the present subject matter, editingapplication 122 includes a channel management module 206 that configuresthe computing system to access one or more instances of one or morepublishing channels embedded in the file for the document. Theinstance(s) of the publishing channel(s) can each comprise one or morepublishing parameters specifying how the document or a portion thereofis to be exported and values for the parameters.

Export module(s) 208 represent code or components of editing application122 that are configured to export data representing at least a portionof the document. For example, an export module can include one or morealgorithms to transform data stored in a format native to editingapplication 122 into another format, such as converting a *.PSD documentin the native format for Adobe® Photoshop® into a JPEG, GIF, PNG, BMP,or other image file. As another example, the native format may representa standard format, such as JPEG, with the data converted to anotherformat (such as GIF) and/or into an application-specific format, such as*PSD.

As a further example, an export module can use data in a format nativeto the editing application to print the document or portions thereof.For instance, data representing an image, textual content, or otherdocument content can be laid out into one or more pages based on pagelayout parameters such as page size, margin, fonts, and raster images.

In accordance with the present subject matter, channel management module206 coordinates the operation of export module(s) 208 based on theparameter value(s) included in one or more instances of publishingchannels embedded in a document.

For example, channel management module 206 may access a document's fileto identify which publishing channel(s), if any, are defined for adocument based on checking one or more portions of the document's file.Tie publishing channel data can be stored in working memory for theediting application and used by UI module 202 to present a selectioninterface (e.g., a menu) in which a user can select one or morepublishing channels for use. Upon selection of one or more channels,channel management module 206 can invoke the appropriate exportmodule(s) 208 and pass parameter values to effect an export operationbased on the selected publishing channel(s).

Channel management module 206 may also define new instances ofpublishing channels or adjust parameter values for a previously-definedinstance of a publishing channel. For example, user interface module 202can be used to provide a publishing channel definition such as a dialogbox configured to receive user input selecting a publishing channel typeand further input setting values for the parameters associated with thetype. Channel management module 206 can be configured to store thespecified publishing parameter(s) in the document at appropriatelocations.

In some embodiments, the channel management module has access to datadefining a set of publishing channel types, such as a different classfor each publishing channel type. An example of a publishing channeltype is the JPEG file channel type. Parameters can include the filelocation and level of compression. The channel types supported by anapplication may be extensible, such as by providing additional code viaa plugin or another program component. Continuing with the exampleabove, channel management module 206 can create one or more instances ofthe JPEG file channel type in response to user input. An example isnoted in the table below showing three different instances of the JPEGpublishing channel type:

Instance File Location Parameter Compression Parameter Number ValueValue 1 C:\file.jpg 50% 2 FTP:\\host.org\file.jpg 25% 3C:\file-high-quality.jpg 10%

In some embodiments, an editing application can support storing“favorite” publishing channel instances for later application todocuments. For example, after an instance of a publishing channel typeis defined with respect to a first document, data identifying thechannel type and parameter values can be stored. When a second documentis edited, the stored channel type and parameter values can be selectedand used to define an instance of the publishing channel with respect tothe second document or a portion thereof.

As was mentioned above, embodiments include editing applicationsimplemented as a web service. In some such embodiments, client-side UIand data storage aspects can be handled by appropriate client-side codethat generates a user interface, receives input data, stores/accesseslocal files, and relays data to and from server-side components of theweb service. At the server side, appropriate code/modules can interfacewith the clients and invoke server-hosted channel management, export,and editing functionality.

FIG. 3 is a flowchart showing an exemplary method 300 of storingpublishing channel information in a document. Block 302 representsreceiving data identifying a document and/or an object (or other logicalunit) within the document. For example, a user may open one or moredocuments in an editing application and select a “publishing channels”option with respect to an entire document. As another example, the usermay select one or more objects or other logical units of content withina document.

Block 304 represents receiving data defining at least one instance of apublishing channel. For example, if the user elects to define a newinstance of a publishing channel, the editing application may present auser interface where the user can select the channel type and then addone or more parameter values to use in association with the channel. Forinstance, the user may select several objects and then specify a filetype, quality, and location for use in exporting the objects in the samefile or in different files; the publishing parameters may include theuser's selection between a single and multiple files for export. Asanother example, the user may select several objects and specify a“print” publishing channel. The “print” publishing channel may simplyspecify use of the local printer and/or may specify a particular printerat a local or other location along with printer settings, page layoutoptions, and the like.

Block 306 represents storing data defining one or more instances ofpublishing channels in the document. For example, the document may bestored in a structured file, such as an XML-formatted data structure.Publishing channel instances can be defined with respect to the entirefile and/or with respect to logical units (e.g., objects) stored withinthe file. For instance, suitable XML markup can be included in theXML-formatted data structure to define the publishing channel(s) byname, declare parameters, and set parameter values.

FIG. 4 is a flowchart showing an exemplary method 400 of using storedpublishing channel information to export a document or one or moreportions of a document. Block 402 represents accessing the document. Forinstance, a user may specify a file location when opening the documentin an editing application.

Block 404 represents accessing publishing channel data stored in thedocument. This may be achieved, for example, by identifying one or moreportions within the document data structure in which publishing channelsare defined in terms of one or more publishing parameters. As anexample, an XML Schema may be used to recognize tags and other markupidentifying the publishing channels in an XML-based file.

Block 406 represents awaiting an export command. In this example, datadefining the publishing channels for the document are loaded into localmemory when the document is loaded, with the publishing channel dataready for use when an export command is received. In other embodiments,the publishing channel data may be loaded separately when/if an exportcommand is received. As another example, publishing channel data may berecognized using an offset value relative to an address of the documentfile.

Once the export command is received, export options are provided asshown at block 408 based on the publishing channel data. For example, amenu option for selecting from a plurality of previously-definedpublishing channels may be presented listing the names of the publishingchannels along with an option to define a new channel or edit theexisting channels. Upon selection of one or more of the channels, thenas shown at block 410 the content of the document can be exportedaccording to the publishing channel data.

As noted above, exporting can comprise outputting data that changes theformat and/or medium of the content from the format used by the editingapplication. For example, a “print” publishing channel may export databy directing the editing application to convert the visual content ofthe document into a bitstream and directing the bitstream to a printingresource as is known in the art. However, in accordance with the presentsubject matter, the margin, layout, paper size, printer selection,and/or other printing resource parameters can be set by the publishingchannel. For example, a first “print” publishing channel may specifygeneration of color content while a second “print” publishing channelmay specify generation of black and white content. When the secondchannel is selected, the editing application can pass suitableparameters to its export components so that the document content isprinted in black and white.

FIG. 5 is a diagram illustrating an exemplary user interface 500 of anediting application. In this example, the user interface includes a menubar 502 and editing canvas 504. A window 506 in editing canvas 504depicts content of a document being edited. In this example, the contentincludes visual content comprising an advertisement for a house. Thecontent may include associated audio as well. For instance, an icon (notshown) may represent one or more sound effects associated with thevisual elements.

In this example, the content includes a first shape 508 and a secondshape 510 used to depict the house. These elements may comprise vectoror raster graphics. For example, first shape 508 may comprise a trianglevector object with a gradient fill pattern. Wave elements 512 brackettext 514 (“Buy this amazing house”) and may, for example, compriseanimated elements. As an example, editing application 500 may be used todevelop content a rich internet application or presentation, such as aSWF file for use with the Adobe® Flash® Player.

However, the editing application that provides interface 500 may supportother export options, and the options can be specified via publishingchannels as taught herein. For example, a “Flash” publishing channel mayspecify that elements 508-514 and the audio element are to be publishedas elements of a SWF file. A “Print” publishing channel may specify thatelements 508, 510, and 514 are to be laid out on a page along with pagemargins and characteristics for use in printing a flyer. In the “Print”publishing channel, animated wave elements 512 may be omitted entirelyor may be noted with parameters indicating a particular state (e.g., aframe) for use in printing the flyer. A “Low-Quality” publishing channelmay specify that elements 508-514 are to be laid out into a single,small-sized JPEG or other image file for use in generating an icon,thumbnail, or other lower-resolution rendering of the content.

FIG. 6 is a diagram showing an exemplary data structure 600 includingobject data of a document and publishing channel data. Althoughillustrated as a continuous segment, data structure 600 is not meant toimply how the data is physically stored; rather, it is presented as anon-limiting illustration of a suitable logical structure for use inimplementing an embodiment of the present subject matter. Portions602-612 can comprise logical portions of the document. For example,portion 602 may include file information for the entire document, whileportions 604, 606, 608, 610, and 612 may each correspond to datadefining content of an object or other logical unit. For instance,portions 602-612 may each correspond to a tag-delimited portion of anXML document and/or binary data defining object shapes or colors. Asanother example, the data may define text strings, fonts, and otherdocument formatting and layout information.

As shown in FIG. 6, each portion 602-612 features embedded publishingchannel data 602A, 604A, 606A, 608A, 610A, and 612A. For example,publishing channel data 602A may comprise one or more parameters andparameter values defining publishing channels for use in publishing someor all of the document, such as data to identify particular logicalunits as included in or excluded from the various publishing channels.If selection of a part of an object (e.g., selection of a run of text,spreadsheet columns, etc.) is supported, data 602A may indicate theselection bounds for the publishing channel.

Portions 604A, 606A, 608A, 610A, and 612A may comprise publishingchannels and/or parameters defined with respect to particular objects.For example, the object(s) represented by portion 608 may includeseparate publishing channels defined at 608A. Publishing channels andparameter-value pairs may be defined using suitable syntax. Forinstance, if data structure 600 comprises an XML document, publishingchannels may be defined in the XML schema for inclusion alongsidecontent data defined in the XML document.

General Consideration

Some portions of the detailed description were presented in terms ofalgorithms or symbolic representations of operations on data bits orbinary digital signals stored within a computing system memory, such asa computer memory. These algorithmic descriptions or representations areexamples of techniques used by those of ordinary skill in the dataprocessing arts to convey the substance of their work to others skilledin the art. An algorithm is here and generally is considered to be aself-consistent sequence of operations or similar processing leading toa desired result. In this context, operations or processing involvephysical manipulation of physical quantities.

Typically, although not necessarily, such quantities may take the formof electrical or magnetic signals capable of being stored, transferred,combined, compared or otherwise manipulated. It has proven convenient attimes, principally for reasons of common usage, to refer to such signalsas bits, data, values, elements, symbols, characters, terms, numbers,numerals or the like. It should be understood, however, that all ofthese and similar terms are to be associated with appropriate physicalquantities and are merely convenient labels.

Unless specifically stated otherwise, as apparent from the foregoingdiscussion, it is appreciated that throughout this specificationdiscussions utilizing terms such as “processing,” “computing,”“calculating,” “determining” or the like refer to actions or processesof a computing platform, such as one or more computers and/or a similarelectronic computing device or devices, that manipulate or transformdata represented as physical electronic or magnetic quantities withinmemories, registers, or other information storage devices, transmissiondevices, or display devices of the computing platform.

The various systems discussed herein are not limited to any particularhardware architecture or configuration. A computing device can includeany suitable arrangement of components that provide a result conditionedon one or more inputs. Suitable computing devices include multipurposemicroprocessor-based computer systems accessing stored software, thatprograms or configures the computing system from a general-purposecomputing apparatus to a specialized computing apparatus implementingone or more embodiments of the present subject matter. Any suitableprogramming, scripting, or other type of language or combinations oflanguages may be used to implement the teachings contained herein insoftware to be used in programming or configuring a computing device.

Embodiments of the methods disclosed herein may be performed in theoperation of such computing devices. The order of the blocks presentedin the examples above can be varied—for example, blocks can bere-ordered, combined, and/or broken into sub-blocks. Certain blocks orprocesses can be performed in parallel.

As noted above, a computing device may access one or morecomputer-readable media that tangibly embody computer-readableinstructions which, when executed by at least one computer, cause the atleast one computer to implement one or more embodiments of the presentsubject matter. When software is utilized, the software may comprise oneor more components, processes, and/or applications. Additionally oralternatively to software, the computing device(s) may comprisecircuitry that renders the device(s) operative to implement one or moreof the methods of the present subject matter.

Examples of computing devices include, but are not limited to, servers,personal computers, personal digital assistants (PDAs), cellulartelephones, televisions, television set-top boxes, portable musicplayers, and consumer electronic devices such as cameras, camcorders,and mobile devices. Computing devices may be integrated into otherdevices, e.g. “smart” appliances, automobiles, kiosks, and the like.

The inherent flexibility of computer-based systems allows for a greatvariety of possible configurations, combinations, and divisions of tasksand functionality between and among components. For instance, processesdiscussed herein may be implemented using a single computing device ormultiple computing devices working in combination. Databases andapplications may be implemented on a single system or distributed acrossmultiple systems. Distributed components may operate sequentially or inparallel.

When data is obtained or accessed as between a first and second computersystem or components thereof, the actual data may travel between thesystems directly or indirectly. For example, if a first computeraccesses data from a second computer, the access may involve one or moreintermediary computers, proxies, and the like. The actual data may movebetween the first and second computers, or the first computer mayprovide a pointer or metafile that the second computer uses to accessthe actual data from a computer other than the first computer, forinstance. Data may be “pulled” via a request, or “pushed” without arequest in various embodiments.

The technology referenced herein also makes reference to communicatingdata between components or systems. It should be appreciated that suchcommunications may occur over any suitable number or type of networks orlinks, including, but not limited to, a dial-in network, a local areanetwork (LAN), wide area network (WAN), public switched telephonenetwork (PSTN), the Internet, an intranet or any combination ofhard-wired and/or wireless communication links.

Any suitable tangible computer-readable medium or media may be used toimplement or practice the presently-disclosed subject matter, including,but not limited to, diskettes, drives, magnetic-based storage media,optical storage media, including disks (including CD-ROMS, DVD-ROMS, andvariants thereof), flash, RAM, ROM, and other memory devices.

The use of “adapted to” or “configured to” herein is meant as open andinclusive language that does not foreclose devices adapted to orconfigured to perform additional tasks or steps. Additionally, the useof “based on” is meant to be open and inclusive, in that a process,step, calculation, or other action “based on” one or more recitedconditions or values may, in practice, be based on additional conditionsor values beyond those recited. Headings, lists, and numbering includedherein are for ease of explanation only and are not meant to belimiting.

While the present subject matter has been described in detail withrespect to specific embodiments thereof it will be appreciated thatthose skilled in the art, upon attaining an understanding of theforegoing may readily produce alterations to, variations of, andequivalents to such embodiments. Accordingly, it should be understoodthat the present disclosure has been presented for purposes of examplerather than limitation, and does not preclude inclusion of suchmodifications, variations and/or additions to the present subject matteras would be readily apparent to one of ordinary skill in the art.

1. A method, comprising: loading a document in an editing environmentprovided by an editing application; receiving data identifying at leasta portion of the document; receiving data defining an instance of apublishing channel to use in exporting the identified portion of thedocument, the publishing channel comprising a publishing parameterspecifying how the identified portion of the document is to be exported,the publishing parameter further specifying an export setting value foruse in the exporting; and storing data defining the instance of thepublishing channel comprising the publishing parameter specifying theexport setting value as an object embedded in the document alongsidedata defining the document, the data defining the instance of thepublishing channel referencing the identified portion of the documentand a value for the export setting value.
 2. The method set forth inclaim 1, wherein the document comprises a plurality of objects.
 3. Themethod set forth in claim 1, wherein storing data comprises storing datadefining an instance of a first publishing channel type with respect toa first object included in the document and an instance of a secondpublishing channel type with respect to a second object included in thedocument, the first and second publishing channel types being differentfrom one another.
 4. The method set forth in claim 1, furthercomprising: receiving an export command identifying at least a portionof the document and specifying at least one publishing channel instance;and exporting the identified portion of the document using thepublishing parameter values comprised in the specified publishingchannel instance.
 5. The method set forth in claim 1, wherein theinstance of the publishing channel comprises a publishing parametervalue defined with respect to each of a subset of a plurality of objectscomprising the document, and wherein the method further comprises:receiving an export command to export the subset; and exporting each ofthe plurality of objects of the subset using the respective publishingparameter value for the object.
 6. A computing system comprising aprocessor with access to a computer-readable medium embodying programcomponents, the program components comprising: a user interface modulethat configures the computing system to provide an interface to receiveinput data and to generate a visual representation of content of adocument, the content of the document stored in a file accessible by thecomputing system; a channel management module that configures thecomputing system to access an instance of a publishing channel embeddedin the file and comprising a publishing parameter value embedded in thefile specifying an export setting value for exporting at least a portionof the document; and an export module configured to automatically exportdata representing the at least a portion of the document based on thepublishing parameter value embedded in the file.
 7. The computing systemset forth in claim 6, wherein the program components further comprise:an editing module configured to change the content of the document inresponse to the input data.
 8. The computing system set forth in claim6, wherein the user interface module configures the computing system toprovide a selection interface identifying a plurality of publishingchannel instances and adapted to receive selection of a publishingchannel instance, and wherein the export module is configured to exportdata representing at least a portion of the document based on thepublishing parameter associated with the selected publishing channelinstance.
 9. The computing system set forth in claim 6, wherein the userinterface module configures the computing system to provide a publishingchannel definition interface, the publishing channel definitioninterface configured to receive user input specifying a selected type ofpublishing channel and a publishing parameter value to define publishingchannel instance, and wherein the channel management module isconfigured to store the specified publishing parameter value as anobject embedded in the document.
 10. The computing system set forth inclaim 6, wherein the publishing parameter comprises a file typecharacteristic to use in exporting or a location characteristic to usein exporting.
 11. The computing system set forth in claim 6, wherein thepublishing parameter is specified with respect to the entire document.12. The computing system set forth in claim 6, wherein the publishingparameter is specified with respect to a logical portion of thedocument.
 13. The computing system set forth in claim 12, wherein thelogical portion of the document comprises an object of the document. 14.A computer program product comprising program code embodied in anon-transitory computer-readable medium, the program code comprising:program code for accessing a document file, the document file comprisingdata identifying a plurality of logical units of the document; programcode for identifying a type of an instance of a publishing channelstored in the document file and a publishing parameter value included inthe instance, wherein the publishing parameter is embedded in thedocument file and specifies an export setting value; program code forautomatically exporting at least one logical unit of the document basedon the type and the publishing parameter value embedded in the documentfile, wherein exporting comprises providing data representing the atleast one logical unit of the document by using the type to determine anexport operation to use and by using the export setting value indicatedby the publishing parameter embedded in the document file to determineat least one of a data format, a layout, or a desired location for theprovided data.
 15. The computer program product set forth in claim 14,wherein the logical unit comprises an object comprising a graphical ortextual element of the document.
 16. The computer program product setforth in claim 15, wherein the logical unit comprises a selected portionof an object in the document.
 17. The computer program product set forthin claim 14, wherein exporting comprises using the publishing parameterto determine a formatting characteristic to use in printing at least aportion of the document.
 18. The computer program product set forth inclaim 14, wherein exporting comprises using the publishing parameter todetermine an image file type to use in saving a file representing atleast a portion of the document.
 19. The computer program product setforth in claim 14, wherein exporting comprises using the publishingparameter to identify a subset of a plurality of objects included in thedocument.
 20. The computer program product set forth in claim 19,wherein exporting further comprises using a publishing parameterassociated with each object of the subset to determine how the object isto be exported.
 21. The method of claim 1, wherein the exporting settingvalue comprises a value related to at least one of a file type, a filequality, and a file location.
 22. The method of claim 1, wherein theexport setting value comprises at least one of a transparency value, apixel depth value, and a color profile.
 23. The method of claim 1,wherein the export setting value comprises at least one of a filetransfer protocol (FTP) server address, a FTP username, and a FTPpassword.